package com.wgz.medicalmanagement.service;

import java.util.List;

import com.wgz.medicalmanagement.domain.dto.ai.ChatHistoryDTO;

/**
 * 聊天历史服务接口
 */
public interface ChatHistoryService {
    
    /**
     * 保存用户消息
     * @param userId 用户ID
     * @param sessionId 会话ID
     * @param message 消息内容
     * @return 保存后的消息ID
     */
    Long saveUserMessage(Long userId, String sessionId, String message);
    
    /**
     * 保存AI回复
     * @param userId 用户ID
     * @param sessionId 会话ID
     * @param message 消息内容
     * @return 保存后的消息ID
     */
    Long saveAiMessage(Long userId, String sessionId, String message);
    
    /**
     * 获取指定会话的聊天记录
     * @param userId 用户ID
     * @param sessionId 会话ID
     * @return 聊天记录DTO
     */
    ChatHistoryDTO getChatHistory(Long userId, String sessionId);
    
    /**
     * 获取用户的所有会话ID
     * @param userId 用户ID
     * @return 会话ID列表
     */
    List<String> getUserSessionIds(Long userId);
    
    /**
     * 清除指定会话的聊天记录
     * @param userId 用户ID
     * @param sessionId 会话ID
     */
    void clearChatHistory(Long userId, String sessionId);
    
    /**
     * 生成新的会话ID
     * @return 新的会话ID
     */
    String generateSessionId();
} 